home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / reconcil.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  5.5 KB  |  206 lines

  1. /*
  2.  * reconcil.h - OLE reconciliation interface definitions.
  3.  */
  4.  
  5.  
  6. #ifndef __RECONCIL_H__
  7. #define __RECONCIL_H__
  8. #pragma option push -b
  9.  
  10.  
  11.  
  12. /* Headers
  13.  **********/
  14.  
  15.  
  16. #include <recguids.h>
  17.  
  18.  
  19.  
  20. #ifdef __cplusplus
  21. extern "C" {                        /* Assume C declarations for C++. */
  22. #endif   /* __cplusplus */
  23.  
  24.  
  25. /* Constants
  26.  ************/
  27.  
  28. /* for use in IStorage::SetStateBits() */
  29.  
  30. #define STATEBITS_FLAT                 (0x0001)
  31.  
  32. /* reconciliation SCODEs */
  33.  
  34. #define REC_S_IDIDTHEUPDATES           MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1000)
  35. #define REC_S_NOTCOMPLETE              MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1001)
  36. #define REC_S_NOTCOMPLETEBUTPROPAGATE  MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1002)
  37.  
  38. #define REC_E_ABORTED                  MAKE_SCODE(SEVERITY_ERROR,   FACILITY_ITF, 0x1000)
  39. #define REC_E_NOCALLBACK               MAKE_SCODE(SEVERITY_ERROR,   FACILITY_ITF, 0x1001)
  40. #define REC_E_NORESIDUES               MAKE_SCODE(SEVERITY_ERROR,   FACILITY_ITF, 0x1002)
  41. #define REC_E_TOODIFFERENT             MAKE_SCODE(SEVERITY_ERROR,   FACILITY_ITF, 0x1003)
  42. #define REC_E_INEEDTODOTHEUPDATES      MAKE_SCODE(SEVERITY_ERROR,   FACILITY_ITF, 0x1004)
  43.  
  44.  
  45. /* Interfaces
  46.  *************/
  47.  
  48. #undef  INTERFACE
  49. #define INTERFACE INotifyReplica
  50.  
  51. DECLARE_INTERFACE_(INotifyReplica, IUnknown)
  52. {
  53.    /* IUnknown methods */
  54.  
  55.    STDMETHOD(QueryInterface)(THIS_
  56.                              REFIID riid,
  57.                              PVOID *ppvObject) PURE;
  58.  
  59.    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  60.  
  61.    STDMETHOD_(ULONG, Release)(THIS) PURE;
  62.  
  63.    /* INotifyReplica methods */
  64.  
  65.    STDMETHOD(YouAreAReplica)(THIS_
  66.                              ULONG ulcOtherReplicas,
  67.                              IMoniker **rgpmkOtherReplicas) PURE;
  68. };
  69.  
  70. #undef  INTERFACE
  71. #define INTERFACE IReconcileInitiator
  72.  
  73. DECLARE_INTERFACE_(IReconcileInitiator, IUnknown)
  74. {
  75.    /* IUnknown methods */
  76.  
  77.    STDMETHOD(QueryInterface)(THIS_
  78.                              REFIID riid,
  79.                              PVOID *ppvObject) PURE;
  80.  
  81.    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  82.  
  83.    STDMETHOD_(ULONG, Release)(THIS) PURE;
  84.  
  85.    /* IReconcileInitiator methods */
  86.  
  87.    STDMETHOD(SetAbortCallback)(THIS_
  88.                                IUnknown *punkForAbort) PURE;
  89.  
  90.    STDMETHOD(SetProgressFeedback)(THIS_
  91.                                   ULONG ulProgress,
  92.                                   ULONG ulProgressMax) PURE;
  93. };
  94.  
  95. /* IReconcilableObject::Reconcile() flags */
  96.  
  97. typedef enum _reconcilef
  98. {
  99.    /* interaction with the user is allowed */
  100.  
  101.    RECONCILEF_MAYBOTHERUSER         = 0x0001,
  102.  
  103.    /*
  104.     * hwndProgressFeedback may be used to provide reconciliation progress
  105.     * feedback to the user.
  106.     */
  107.  
  108.    RECONCILEF_FEEDBACKWINDOWVALID   = 0x0002,
  109.  
  110.    /* residue support not required */
  111.  
  112.    RECONCILEF_NORESIDUESOK          = 0x0004,
  113.  
  114.    /* caller not interested in callee's residues */
  115.  
  116.    RECONCILEF_OMITSELFRESIDUE       = 0x0008,
  117.  
  118.    /*
  119.     * Reconcile() call resuming after a previous Reconcile() call returned
  120.     * REC_E_NOTCOMPLETE
  121.     */
  122.  
  123.    RECONCILEF_RESUMERECONCILIATION  = 0x0010,
  124.  
  125.    /* Object may perform all updates. */
  126.  
  127.    RECONCILEF_YOUMAYDOTHEUPDATES    = 0x0020,
  128.  
  129.    /* Only this object has been changed. */
  130.  
  131.    RECONCILEF_ONLYYOUWERECHANGED    = 0x0040,
  132.  
  133.    /* flag combinations */
  134.  
  135.    ALL_RECONCILE_FLAGS              = (RECONCILEF_MAYBOTHERUSER |
  136.                                        RECONCILEF_FEEDBACKWINDOWVALID |
  137.                                        RECONCILEF_NORESIDUESOK |
  138.                                        RECONCILEF_OMITSELFRESIDUE |
  139.                                        RECONCILEF_RESUMERECONCILIATION |
  140.                                        RECONCILEF_YOUMAYDOTHEUPDATES |
  141.                                        RECONCILEF_ONLYYOUWERECHANGED)
  142. }
  143. RECONCILEF;
  144.  
  145. #undef  INTERFACE
  146. #define INTERFACE IReconcilableObject
  147.  
  148. DECLARE_INTERFACE_(IReconcilableObject, IUnknown)
  149. {
  150.    /* IUnknown methods */
  151.  
  152.    STDMETHOD(QueryInterface)(THIS_
  153.                              REFIID riid,
  154.                              PVOID *ppvObject) PURE;
  155.  
  156.    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  157.  
  158.    STDMETHOD_(ULONG, Release)(THIS) PURE;
  159.  
  160.    /* IReconcilableObject methods */
  161.  
  162.    STDMETHOD(Reconcile)(THIS_
  163.                         IReconcileInitiator *pInitiator,
  164.                         DWORD dwFlags,
  165.                         HWND hwndOwner,
  166.                         HWND hwndProgressFeedback,
  167.                         ULONG ulcInput,
  168.                         IMoniker **rgpmkOtherInput,
  169.                         PLONG plOutIndex,
  170.                         IStorage *pstgNewResidues,
  171.                         PVOID pvReserved) PURE;
  172.  
  173.    STDMETHOD(GetProgressFeedbackMaxEstimate)(THIS_
  174.                                              PULONG pulProgressMax) PURE;
  175. };
  176.  
  177. #undef  INTERFACE
  178. #define INTERFACE IBriefcaseInitiator
  179.  
  180. DECLARE_INTERFACE_(IBriefcaseInitiator, IUnknown)
  181. {
  182.    /* IUnknown methods */
  183.  
  184.    STDMETHOD(QueryInterface)(THIS_
  185.                              REFIID riid,
  186.                              PVOID *ppvObject) PURE;
  187.  
  188.    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  189.  
  190.    STDMETHOD_(ULONG, Release)(THIS) PURE;
  191.  
  192.    /* IBriefcaseInitiator methods */
  193.  
  194.    STDMETHOD(IsMonikerInBriefcase)(THIS_
  195.                                    IMoniker *pmk) PURE;
  196. };
  197.  
  198.  
  199. #ifdef __cplusplus
  200. }                                   /* End of extern "C" {. */
  201. #endif   /* __cplusplus */
  202.  
  203.  
  204. #pragma option pop
  205. #endif   /* ! __RECONCIL_H__ */
  206.